The development, deployment and subsequent customization cost of even moderately complex software is high. In many situations, the total cost of ownership may significantly exceed the product price. One of the primary contributors to the high cost of development and ownership is the numerous and complex inter-dependencies that exist in such software. These interdependencies make it hard to know what to change to achieve a given business objective.
A fundamental issue that gives rise to this problem is lack of adequate documentation. Documentation is almost always incomplete, inadequate, outdated, disconnected and almost always not related to the actual code that gets executed. Numerous tools attempt to address the issue of documentation by facilitating capture of business requirements, design model and source code documentation. However, what is missing is a means to map and connect the source code to the business requirements. The goal of this invention is to create a mapping from the source code to business logic.
One notable reference is U.S. Pat. No. 6,253,370 issued Jun. 26, 2001 to Abadi, et al. and entitled “Method and apparatus for annotating a computer program to facilitate subsequent processing of the program”. This publication describes annotating a computer program for subsequent analysis in a different computer system. The annotations relate to execution flow of the code, and the subsequent analysis detects unauthorized or inappropriate operations. Accordingly, any inappropriate code can be rejected before its execution.
Notwithstanding this existing art, a need exists for an improved manner of analyzing code and produce an output that is more closely associated with business requirements.